home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.5 Applications 1999 November / SGI IRIX 6.5 Applications 1999 November.iso / dev / insight_dev.idb / usr / share / Insight / bin / check_arch.z / check_arch
Encoding:
Text File  |  1998-10-28  |  6.7 KB  |  175 lines

  1. #!/bin/sh
  2.  
  3. # test for existence of archive, set $dir to full path
  4. kdir=`echo $1 | sed 's/...-\(.\)...-.*/\1/'`000
  5. if [ ! -d /depot/doc/${kdir}/${1} ] ; then
  6.   echo "/depot/doc/${kdir}/$1 does not exist"
  7.   echo "usage: archcheck <part_number>"
  8. else
  9.  
  10.   dir=/depot/doc/${kdir}/${1}
  11.  
  12.   TMPDIR=${TMPDIR:=/usr/tmp}
  13.  
  14.   # if there's a Makefile
  15.   if [ ! -f ${dir}/Makefile ] ; then
  16.     echo "No Makefile, so can't check valid .docs"
  17.   else
  18.  
  19.     # clean up temp files
  20.     if [ -f ${TMPDIR}/.figlist.$$ ] ; then rm ${TMPDIR}/.figlist.$$ ; fi
  21.     touch ${TMPDIR}/.figlist.$$
  22.     if [ -f ${TMPDIR}/.book_files.$$ ] ; then rm ${TMPDIR}/.book_files.$$ ; fi
  23.     touch ${TMPDIR}/.book_files.$$
  24.     if [ -f ${TMPDIR}/.valid_sgm_files.$$ ] ; then rm ${TMPDIR}/.valid_sgm_files.$$ ; fi
  25.     touch ${TMPDIR}/.valid_sgm_files.$$
  26.  
  27.     # make list of book files in the Makefile
  28.     awk '/^BOOK_FILES/,/[^\\]$/' ${dir}/Makefile | sed 's/^BOOK_FILES *= *//' | sed s'/\\$//' | sed 's/EndPart//' > ${TMPDIR}/.book_files.$$
  29.  
  30.     # make list of valid sgm files from .book_files
  31.     for file in `cat ${TMPDIR}/.book_files.$$` ; do
  32.       sgmfile=${dir}/`echo $file | sed 's/\.doc/\.sgm/g'`
  33.       echo $sgmfile >> ${TMPDIR}/.valid_sgm_files.$$
  34.     done
  35.     valid_sgm_files=`cat ${TMPDIR}/.valid_sgm_files.$$` 
  36.  
  37.     # if there are any files listed in the Makefile
  38.     if [ ! -s ${TMPDIR}/.book_files.$$ -o -z "`grep doc ${TMPDIR}/.book_files.$$`" ] ; then
  39.       echo "No .doc's on BOOK_FILES line in Makefile, checking sgms...\n"
  40.     else
  41.  
  42.       echo "Checking for archived .docs not in the Makefile..."
  43.       for file in `/bin/ls ${dir}/*.doc` ; do
  44.         docfile=`basename $file`
  45.         if [ -z "`grep ${docfile} ${TMPDIR}/.book_files.$$`" ] ; then
  46.           echo $docfile
  47.         fi
  48.       done
  49.  
  50.       echo "\nChecking for missing .sgm files..."
  51.       for file in `cat ${TMPDIR}/.book_files.$$` ; do
  52.         sgmfile=`echo $file | sed 's/\.doc/\.sgm/'`
  53.         if [ -z "`ls ${dir}/${sgmfile} 2> /dev/null`" ] ; then
  54.           echo $file
  55.         fi
  56.       done
  57.  
  58.       echo "\nChecking for extra .sgm files..."
  59.       for file in `/bin/ls ${dir}/*.sgm` ; do
  60.         filename=`basename $file`
  61.         if [ -z "`grep ${filename} ${TMPDIR}/.valid_sgm_files.$$`" ] ; then
  62.           echo $filename
  63.         fi
  64.       done
  65.  
  66.       echo "\nChecking for possible other extra files/dirs..." 
  67.       /bin/ls -1 ${dir} | sed '/^online$/d' | sed '/^orig$/d' | sed '/^print$/d' | sed '/^.*\.doc$/d' | sed '/^.*\.sgm$/d' | sed '/^Makefile$/d' | sed '/^prod$/d' | sed '/^RCS$/d' | sed '/^help$/d' | sed '/^.*\.book$/d'
  68.  
  69.       # check help refs
  70.       if [ -d ${dir}/help ] ; then
  71.         echo "\nChecking help references (this may take a moment)..."
  72.         for helpmap in `/bin/ls ${dir}/help/*.helpmap` ; do
  73.           valid_helpmap="F"
  74.           for helptopic in `cat $helpmap | sed 's/^\([^;]*;\)\([^;]*;\)\([^;]*;\)\([^;]*;\)\([^;]*\);.*$/\5/' | sed '/#.*/d'`; do
  75.             if [ -z "`grep ${helptopic} $valid_sgm_files`" ] ; then
  76.               echo "$helptopic in `basename $helpmap` does not exist in any valid sgm file"
  77.             else
  78.               valid_helpmap="T"
  79.             fi
  80.           done
  81.           if [ $valid_helpmap = "F" ] ; then
  82.             echo "WARNING: `basename $helpmap` does not contain any valid entries"
  83.           fi
  84.         done
  85.       fi
  86.  
  87.       # pull out refs in doc files to figs in print dir
  88.       echo "\nworking on fig refs\c"
  89.       for file in `cat ${TMPDIR}/.book_files.$$ | grep doc` ; do (strings ${dir}/$file | grep "<c>print<c>" | sed 's/.*<c>\(.*\)<U>.*/\1/' >> ${TMPDIR}/.figlist.$$ ; echo ".\c" ) ; done
  90.       rm ${TMPDIR}/.book_files.$$
  91.  
  92.       # look for figs in Makefile, but not in orig
  93.       echo "\n\nChecking for fig files in orig, but not in Makefile..."
  94.       if [ -f ${TMPDIR}/.figs_make.$$ ] ; then rm ${TMPDIR}/.figs_make.$$ ; fi
  95.       touch ${TMPDIR}/.figs_make.$$
  96.       awk '/^PRINT_BW/,/[^\\]$/' ${dir}/Makefile | sed 's/^PRINT_BW *= *//' | sed s'/\\$//' | sed 's/\.rgb/\.bw/g' >> ${TMPDIR}/.figs_make.$$
  97.       awk '/^PRINT_COLOR/,/[^\\]$/' ${dir}/Makefile | sed 's/^PRINT_COLOR *= *//' | sed s'/\\$//' | sed 's/\.rgb/\.clr/g' >> ${TMPDIR}/.figs_make.$$
  98.       awk '/^PostScript/,/[^\\]$/' ${dir}/Makefile | sed 's/^PostScript *= *//' | sed s'/\\$//' >> ${TMPDIR}/.figs_make.$$
  99.       for file in `cat ${TMPDIR}/.figs_make.$$` ; do
  100.         fullpath=${dir}/orig/`echo $file | sed 's/\.bw/\.rgb/' | sed 's/\.clr/\.rgb/'`
  101.         if [ -z "`ls $fullpath 2> /dev/null`" ] ; then 
  102.           echo $file
  103.         fi
  104.       done
  105.  
  106.       # look for figs in orig, but not in Makefile
  107.       echo "\n\nChecking for fig files in orig, but not in Makefile..."
  108.       for file in `/bin/ls orig` ; do
  109.         if [ -z "`grep $file Makefile 2> /dev/null`" ] ; then echo $file ; fi
  110.       done
  111.  
  112.       # compare ref'd figs against figs in Makefile
  113.       echo "\nChecking for fig files in the Makefile, but not ref'd in valid .doc's..."
  114.       for file in `cat ${TMPDIR}/.figs_make.$$` ; do
  115.         if [ -z "`grep \"^${file}$\" ${TMPDIR}/.figlist.$$`" ] ; then
  116.           echo $file
  117.         fi
  118.       done
  119.       rm ${TMPDIR}/.figs_make.$$
  120.  
  121.       # if there are any refs to figs in the print dir
  122.       if [ ! -s ${TMPDIR}/.figlist.$$ ] ; then
  123.         echo "no imported figures in doc files\n"
  124.         rm ${TMPDIR}/.figlist.$$
  125.       else
  126.  
  127.         # if there's a print dir
  128.         if [ ! -d ${dir}/print ] ; then
  129.           echo "no print dir"
  130.         else 
  131.  
  132.           echo "\nChecking for figs in print, but not ref'd in valid .doc's..."
  133.           for file in `/bin/ls ${dir}/print` ; do
  134.             if [ -z "`grep $file ${TMPDIR}/.figlist.$$`" ] ; then
  135.               echo $file | sed '/^RCS$/d'
  136.             fi
  137.           done
  138.  
  139.           echo "\nChecking for files referenced in valid .doc's, but not in print/..."
  140.           for file in `cat ${TMPDIR}/.figlist.$$` ; do
  141.             if [ -z "`ls ${dir}/print/${file} 2> /dev/null`" ] ; then
  142.             echo $file
  143.             fi
  144.           done
  145.           echo
  146.         fi
  147.         rm ${TMPDIR}/.figlist.$$
  148.       fi # if there are any imported figures
  149.     fi  # if there are any .docs listed in the Makefile
  150.   fi  # if there is a Makefile 
  151.  
  152.   # if there's sgms and an online dir
  153.   if [ -s ${TMPDIR}/.valid_sgm_files.$$ -a -d ${dir}/online ] ; then
  154.  
  155.     echo "Checking for figs in online not ref'd in valid sgm's..."
  156.     for file in `/bin/ls ${dir}/online` ; do
  157.       if [ -z "`grep $file $valid_sgm_files`" ] ; then
  158.         echo $file | sed '/^RCS$/d'
  159.       fi
  160.     done
  161.  
  162.     echo "\nChecking for files referenced in valid sgm's, but not in online/..."
  163.     for file in `grep "GRAPHIC FILE=" $valid_sgm_files | sed 's/^.*GRAPHIC FILE=\"\([^"]*\)\".*$/\1/'` ; do
  164.       if [ -z "`ls ${dir}/online/${file} 2> /dev/null`" ] ; then
  165.       echo $file
  166.       fi
  167.     done
  168.  
  169.   else
  170.     echo "no .sgm's present, or no online dir"
  171.   fi
  172.   rm ${TMPDIR}/.valid_sgm_files.$$
  173.  
  174. fi  # if there is a valid archive
  175.